Обробка помилок у Spring Boot
📌 Використання @ExceptionHandler
Щоб обробляти виняткові ситуації в контролерах, можна використовувати @ExceptionHandler.
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(BookNotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
public String handleBookNotFound(BookNotFoundException ex) {
return ex.getMessage();
}
}
🛠 Створення кастомного винятку
public class BookNotFoundException extends RuntimeException {
public BookNotFoundException(String message) {
super(message);
}
}
Використання у сервісному шарі:
public Book getBookById(Long id) {
return bookRepository.findById(id)
.orElseThrow(() -> new BookNotFoundException("Книга з ID " + id + " не знайдена"));
}
Назад Далі